Conventional content addressable memory (CAM) is a special type of memory. In contrast to RAM, in which a user provides an address, and data residing in that address is returned to the user, with CAM the user provides data, and the address containing the data is returned to the user. The CAM may also be programmed to return a predetermined signal in lieu of the location where the data is stored.
CAM is a potent type of memory. In addition to storing data, CAM inherently contains a search mechanism for identifying the location of a particular piece of data, and whether the data even exists within the CAM. To search for the location of data, the user inputs the data. The CAM compares the inputted data with the data stored in its memory cells. If a match is found between the inputted data and the stored data, a flag is set. The flag identifies that a match was found, and the location where the data was stored. Further, the CAM performs this comparison on every cell within the CAM simultaneously. Because every cell within the CAM is examined at the same time, the search is typically performed quicker than many other conventional searches used by non-CAM memory.
As mentioned above, in addition to telling the user where the data exists, the CAM may also tell the user whether the data exists at all within the CAM. Thus, CAM may be used as an enabling gate to trigger a response if a particular data configuration exists. For example, CAM may be used in a network to determine if a specific email address exists.
The data being searched for in the CAM may be a single bit, or a pattern of multiple bits. Typically, when multiple data bits are compared, the individual data bits are compared on a one-to-one basis. If each individual bit matches, the CAM enables the match signal, although partial matches may also be found and flagged.
Several deficiencies exist, however, with CAM. Any data stored in the CAM is lost when power is removed from the CAM. In addition, because of the large number of transistors required to store the data bit and perform the comparing, CAM cells require a relatively large amount of real estate. Thus, fewer CAM cells per given die area are possible than other types of memory, resulting in less storage capacity.